/**
 * 
 */
package net.teamclerks.rpgf.inventory.item.equipment;

import net.teamclerks.rpgf.character.statsheet.EquipmentStatSheet;
import net.teamclerks.rpgf.inventory.item.EquipmentItem;
import net.teamclerks.rpgf.script.director.Director;

/**
 * WeaponItem is a special kind of EquipmentItem. Each Character
 * has a map of WeaponItems in "slots". This simply means that a
 * Character can have an arbitrary number of "slots" in which to
 * put WeaponItems.<br/><br/>
 * The simplest implementation would be a Character with one slot
 * for a WeaponItem, but the door is open for duel-wield implementations
 * as well (hence the slots).
 * 
 * @author kain
 *
 */
public class WeaponItem extends EquipmentItem
{
  /// PUBLIC STATIC FINAL VARIABLES ///
  public static final int WEAPON_CLASS_SWORD  = 0;
  public static final int WEAPON_CLASS_AXE    = 1;
  public static final int WEAPON_CLASS_SPEAR  = 2;
  public static final int WEAPON_CLASS_CLAWS  = 3;
  public static final int WEAPON_CLASS_STAFF  = 4;
  public static final int WEAPON_CLASS_DAGGER = 5;
  
  public static final int WEAPON_SLOT_MAIN_HAND  = 0;
  public static final int WEAPON_SLOT_OFF_HAND   = 1;
  public static final int WEAPON_SLOT_TWO_HANDED = 2;
  
  /// DATAPOINTS ///
  protected int weaponClass;
  
  /// PUBLIC CONSTRUCTOR ///
  public WeaponItem(Director director)
  {
    super(director);
    this.statSheet = new EquipmentStatSheet(director,this);
  }

  /// PUBLIC METHODS ///
  /**
   * @return the weaponClass
   */
  public final int getWeaponClass()
  {
    return weaponClass;
  }
  /**
   * @param weaponClass the weaponClass to set
   */
  public final void setWeaponClass(int weaponClass)
  {
    this.weaponClass = weaponClass;
  }
}
